/******************************************************************************
* Project Name					: DALI Driver 
* Version 		    			: 
* All rights reserved   : www.powerboke.com
* Device Used				    : AT32F421F8P7
* Software Used					: UV5
* Compiler    					: MDK 5.28
* Related Hardware			: All DALI core broad.
* Oscillator       			: Inside (8M/2) *6=24M
* Debug way: J OB cc-link ARM SWD /  AT-link V2 SWD
*******************************************************************************/


/*

版本更新记录

详见User/Version_record.c文件

*/



#include "main.h"

//全局变量
u16 SleepTimer;                                               //休眠时钟计数器
u8 SysWorkMode ;                                              //系统工作模式
volatile u32 CLK;                                             //系统工作模式
u8 DataTemp;

u8 iiii,jjjj;
volatile u16 PF_array_Buff[100][2];
volatile u16 AC_InP_20V_44V_Buff[100][2];
	
void Bus_Power_init(void);
void TIM16_Config(void);
void ACScan_GPIO_init(void);
void PUSH_PinInit(void);


/*******************************************************************************
* Summary:
*
* Parameters:
*
* Return:
*
* Global Variables:
*  
* Note:
*******************************************************************************/
int main(void)
{

	  //Configure a SysTick Base time
	SysTick_Config(SystemCoreClock); 

	//关闭全局中断
	__disable_irq();

	/* Enable GPIOA clock*/
	RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOA, ENABLE);  //dali-rx,dali-tx,

	/* Enable GPIOB clock*/
	RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOB, ENABLE);  //dali-rx,dali-tx,

	/* Enable GPIOF clock*/
	RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOF, ENABLE);  //dali-rx,dali-tx,

	 //初始化NFC接口
	 NFC_I2C_Init();
	 
	 //配置GIO中断(目前取掉这部分代码, 因为NFC编辑器部分, 暂时未完善)
	 NFC_GIO_InterruptConfig();
	 
	 //检测是否存在NFC芯片
   Check_NFC_is_online();

	 DataTemp = 0x55;
	 ST25DV_NFC_Write(1, 0x55 + 1024, &DataTemp);
	
	 DataTemp = 0;
	 ST25DV_NFC_Read(1, 0x55 + 1024, &DataTemp );
   //主循环
   while(1)
   { 	 


  }

}


/**
  * @brief  Configures system clock after wake-up from STOP: enable HSE, PLL
  *         and select PLL as system clock source.
  * @param  None
  * @retval None
  */

//Gpio_Bit_Toggle(Cali_SIM_UART_PORT,Cali_SIM_UART_PIN);
//////////////////////////////////////////////////////////////////////////////////////////////////////
void Gpio_Bit_Toggle(GPIO_Type* GPIOx, uint16_t GPIO_Pin)
{
   if(GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin))
	 {
	    GPIO_WriteBit(GPIOx,GPIO_Pin,Bit_RESET); 
	 }
	 else
	 {
	    GPIO_WriteBit(GPIOx,GPIO_Pin,Bit_SET); 
	 }
}





u8   get_ST25DV_SDA_input_state(void)
{
	return GPIO_ReadInputDataBit(GPIOA, GPIO_Pins_10);
}	

void ST25DV_SCL_write(u8 level)
{
	 GPIO_WriteBit(GPIOA, GPIO_Pins_9,(BitAction)level);
}

void ST25DV_SDA_write(u8 level)
{
	 GPIO_WriteBit(GPIOA, GPIO_Pins_10,(BitAction)level);
}


void NFC_I2C_Init(void)
{
	 #if(NFC_PROGRAM_FUNCTION_SW==NFC_PROGRAM_FUNCTION_ON)	
	
		GPIO_InitType GPIO_InitStructure; 

	  GPIO_WriteBit(GPIOA, GPIO_Pins_9,(BitAction)1);
	  GPIO_WriteBit(GPIOA, GPIO_Pins_10,(BitAction)1);
	
		GPIO_InitStructure.GPIO_Pins = GPIO_Pins_9|GPIO_Pins_10;    //该端口为开漏输出
		GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_OUT;
		GPIO_InitStructure.GPIO_OutType = GPIO_OutType_OD;          //open drain
		GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;            //NOPULL
		GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;     //speed 50M

		GPIO_Init(GPIOA, &GPIO_InitStructure);
		
	  GPIO_WriteBit(GPIOA, GPIO_Pins_9,(BitAction)1);
	  GPIO_WriteBit(GPIOA, GPIO_Pins_10,(BitAction)1);
	 #endif
}


/*******************************************************************************
* @brief  NFC_GIO配置外部中断
* @param   None
* @retval None
********************************************************************************/
void NFC_GIO_InterruptConfig(void)
{
	
}

/*******************************************************************************
* Summary:
*
* Parameters:
*
* Return:
*
* Global Variables:
*  
* Note:延时值10.2us ~ 10.4us
*******************************************************************************/
void DelayN10us(volatile uint32_t n10us)
{
  for(;n10us>0;n10us--)
    {
        __NOP;
    }
}

/*******************************************************************************
* Summary:
*
* Parameters:
*
* Return:
*
* Global Variables:
*  
* Note:延时值1.004ms
*******************************************************************************/
void DelayN1ms(volatile uint32_t ms)
{
    for(;ms>0;ms--)
    {
        DelayN10us(131);  
    }
}

/*****END OF FILE****/
